package exception;
/*异常处理机制中try catch
语法：try｛。。
异常语句。｝catch(异常类型  名字）{
处理异常的方法
｝
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");
        try {
            //String s = null;
            String s = "adg";
            //String s = "123436";
            int i = Integer.parseInt(s);//将String类型的数据转换为int类型，但要确保该字符里面确实为数字，不然会报错
            //System.out.println(s.length());
            System.out.println(i);
            //System.out.println(s.charAt(3));//返回下标为3的字符，会包越界的错误
//        }catch (NullPointerException e){//没有异常得话，程序就不会进入catch里面，直接跳过执行后续代码
//            System.out.println("空指针异常，在这里解决了");
//        }catch (StringIndexOutOfBoundsException e){
//            System.out.println("出现了StringIndexOutOfBoundsException，并解决了");
            System.out.println("---------------!!!!!!!!-----------------");//如果没有报错，这句话会被输出，如果报错了被catch捕获了，那程序就不会执行这一句话了
            //如果多种异常类型，处理的方法是一样的，可以将这几种异常用同一个catch来进行捕获并处理
        }catch (NullPointerException|StringIndexOutOfBoundsException e){//两种catch的方法，范围类型大的写在后面
            System.out.println("出现了空指针或字符下标越界的异常，已进行处理");
        }catch (Exception e){//这个异常是所有异常的父类，不管是什么异常，在这里都能被捕获并进行处理
            System.out.println("出现了一个未知错误");
        }
        System.out.println("程序结束了");
    }
}
